home *** CD-ROM | disk | FTP | other *** search
/ MacTech 1 to 12 / MacTech-vol-1-12.toast / Source / MacTech® Magazine / Volume 12 - 1996 / 12.07 Jul 96 / 12.07 Top Ten < prev    next >
Encoding:
Text File  |  1996-06-14  |  1.9 KB  |  55 lines  |  [TEXT/R*ch]

  1. Q:    When trying to create a PCI driver, I get these link errors:
  2.  
  3. Multiply Defined Symbol:
  4.         BlockMove (DriverServicesLib, InterfaceLib)
  5. Multiply DefinedSymbol:
  6.         BlockMoveData (DriverServicesLib, InterfaceLib)
  7.  
  8.     The libraries involved are:
  9.  
  10.         DriverServicesLib 1.0.2 from the April 96 SDK 2 disk
  11.         InterfaceLib 1.1 from our Release 5 CD
  12.  
  13.     How do I avoid this?
  14.  
  15. A:    This is a bug in the DriverServicesLib.  These symbols should not have been redefined in this library.  Hopefully, by the time you read this Apple will have released a newer version.
  16.  
  17. Q:    And now a Java question.  When compiling my Java project I am getting the compile error:
  18.  
  19.     Error: File Foo.class does not contain Foo as expected, but     java.somepackage.Foo.  Please remove the file.
  20.  
  21.     What gives?
  22.  
  23. A:    The project is looking for something in the java.somepackage.Foo package, but can not find it.  Most likely you forgot to import it.  Add an import java.somepackage.Foo line and it should fix it.
  24.  
  25. Q:    Is there a TCL archive somewhere?
  26.  
  27. A:    You can now find indices at:
  28. http://rhino.harvard.edu/dan/TCLArchive.html
  29.     and the files themselves at:
  30. ftp://rhino.harvard.edu/pub/dan/TCL/
  31.  
  32.     If you have classes you want to add, upload them to:
  33. ftp://rhino.harvard.edu/incoming/
  34.     and send Dan Crevier at dan@rhino.harvard.edu a message about it.  By the way, thanks, Dan.
  35.  
  36. Q:    I am trying to port a PowerPlant application to Symantec C++, but I get the following error:
  37.  
  38.         File "PPobClasses.cp"; Line 57
  39.         Error:   cannot implicitly convert
  40.         from: LButton *(*"C++")(LStream *)
  41.         to  : void *(*"C++")(LStream *)
  42.  
  43.     on the line:
  44.  
  45. URegistrar::RegisterClass(LButton::class_ID,
  46.         LButton::CreateButtonStream);
  47.  
  48.     Why?
  49.  
  50. A:    The second parameter of RegisterClass() is a ClassCreatorFunc, defined as:
  51.  
  52. typedef void* (*ClassCreatorFunc)(LStream *);
  53.  
  54.     The problem is that each object’s creator function (as for LButton above) returns a pointer to a class, which violates contravariance rules of C++.
  55.